interface IKun {
  name: string
  age: number
  slogan?: string
}
type t1 = "上海" | "北京" | "洛杉矶"
type IkunOptional = Record<t1, IKun>
`
type IkunOptional = {
  上海: IKun;
  北京: IKun;
  洛杉矶: IKun;
}
`
const ikuns: IkunOptional = {
  上海: { name: "xxx", age: 10 },
  北京: { name: "yyy", age: 11 },
  洛杉矶: { name: "zzz", age: 12 },
}


// 类型体操
// 确保Keys一定是可以作为key的联合类型
type HYRecord<Keys extends keyof any, T> = {
  [P in Keys]: T
}

type IkunOptional1 = HYRecord<t1, IKun>
const ikuns1: IkunOptional1 = {
  上海: { name: "xxx", age: 10 },
  北京: { name: "yyy", age: 11 },
  洛杉矶: { name: "zzz", age: 12 },
}


export { }